home *** CD-ROM | disk | FTP | other *** search
- Highlights des Upgrades
-
- Der Compiler
-
- Einer der Gründe für die Verzögerung des Upgrades lag darin, daß wir uns entschlossen
- hatten, den Compiler in großen Stücken neu zu implementieren. Und wie heißt es so schön?
- Beim zweiten Mal wird alles besser! Hier sind die Resultate.
-
- Die wesentlichen Änderungen des Compilers betreffen die Codeerzeugung. Er erzeugt jetzt
- einen schnellen kompakten Code:
- * Konstante Teilausdrücke werden erkannt und zur Laufzeit berechnet (constant folding).
- * Unnötiges Umkopieren der aktuellen Parameter unterbleibt (Prozeduraufrufe sind schneller).
- * Funktionswerte bis 32 Bit Größe können im Register statt auf dem Stack zurückgegeben
- werden.
- * Bei der Berechnung von Ausdrücken werden die Register des 68000 zur Zwischen~
- speicherung benutzt (bisher wurde auch hier der Stack verwendet).
- * Laufvariablen von FOR-Schleifen werden in einem Register gehalten.
- * Die Record-Adresse bei WITH-Anweisungen wird im Register abgelegt.
- * Bereichs- und Überlauf-Prüfungen werden effizienter codiert.
- * Feld- und Record-Zugriffe werden deutlich besser übersetzt.
- * Aufeinander folgende Konstanten als aktuelle Parameter bei Prozeduraufrufen werden
- zusammengefaßt (Beispiel: GotoXY (2,2) erzeugt eine einzige MOVE.L-Instruktion!).
- * Viele weitere Feinheiten, die wir schon immer als selbstverständlich für eine gute
- Code-Erzeugung bei einem Ein-Pass-Compiler ansahen.
-
- Der Compiler erfüllt jetzt vollständig die Sprachdefinition von PIM3 ("Programming in
- Modula-2" von Prof. Wirth, 3. Auflage); beispielsweise können nun alle Standardfunktionen,
- wie MAX, SIZE, CHR usw. in CONST-Ausdrücken verwendet werden.
-
- Wußten Sie schon, daß seit mehreren Jahren an einem internationalen Standard für Modula-2
- gearbeitet wird? Dieser hat zum Ziel, daß sowohl die Ungenauigkeiten in Wirths Sprach~
- definition als auch die Probleme mit verschiedenen Rechnerarchitekturen gelöst werden, so
- daß Modula nun auch in der Praxis portabler als C wird. Die Normierung, die in ca. einem
- Jahr feststehen dürfte, wird durch das ISO, eine weltweite Vereinigung von Landes~
- organisationen wie BSI, IEEE und DIN, vorgenommen.
-
- Im deutschen DIN-Arbeitskreis für Modula-2 sind wir selbst aktives Mitglied und konnten
- auch schon eigene Erfahrungen mit unserem Modula mit in den Standard einfließen lassen. So
- können wir auch gut beurteilen, welche Spezifikationen der ISO-Norm so sicher sind, daß wir
- sie schon jetzt implementieren können. Solange die Normierung noch nicht abgeschlossen ist,
- hat es wenig Sinn, unseren Compiler so weit wie möglich anzupassen, denn einige Dinge der
- ISO-Norm erfordern nicht unerhebliche Anpassungen bestehender Modula-Programme. Wir
- haben uns deshalb erst einmal darauf beschränkt, die interessanten Erweiterungen der Norm
- zu implementieren, soweit sie keine Beeinträchtigungen gegenüber PIM3 bzw. unseren
- bisherigen Programmen bedeuten.
-
- Die bedeutendsten ISO-Erweiterungen:
- * Aggregate (damit können nun beispielsweise bequem ganze Felder und Records initialisiert
- werden).
- * Der Typ BITNUM, mit dem definiert einzelne Bits angesprochen werden können, sowie die
- Funktionen SHIFT und ROTATE zum Verschieben/Rotieren.
- * Typen REAL und LONGREAL. LONG ist der bisherige REAL-Typ, REAL ist ein neuer
- 4 Byte-Real, der natürlich wieder konkurrenzlos schnell ist.
- * String-Konstanten können verkettet werden, so daß es kein Problem mehr ist, Control-
- Zeichen einzufügen oder einen String über mehrere Zeilen zu schreiben.
- * Mehrdimensionale offene Felder sind möglich.
- Weitere Korrekturen und Erweiterungen beim Compiler:
- * Der Mathe-Koprozessor (FPU 68881/2) kann bei ST und TT eingesetzt werden (s.u.).
- * Long-Konstanten brauchen nicht mehr mit der Kennunng 'D' oder 'L' versehen werden.
- * Wir haben nun einen echten 32 Bit-Compiler, das heißt: keine Einschränkungen mehr bei
- lokalen Daten, Records, Arrays usw.
- * Zeitintensive Routinen können durch die Deklaration von Register-Variablen wie in
- C optimiert werden. Dies kann u.U. Funktionen um das Zweifache beschleunigen.
- * Zur besseren Kompatibilität mit anderen Modula-Compilern werden aufgezählte Record-
- Felder nun in der "richtigen" Reihenfolge abgelegt (natürlich per Compiler-Option
- abschaltbar), ebenso SETs bis 32 Bit (auch BITSET). Per Option kann erreicht werden,
- daß LONG-Variable (z.B. LONGCARD) auf SHORT-Variable (z.B. CARDINAL) ohne
- Zuhilfenahme der SHORT-Funktion zugewiesen werden können. FORWARD kann auch in
- der üblichen Pascal-Syntax verwendet werden.
- * Alle Fehler in bezug auf Import/Export sowie opaque und Aufzählungs-Typen sind
- behoben. Bei POINTER- und Prozedurtyp-Deklarationen brauchen die Referenz- bzw.
- Parametertypen nicht mehr im selben TYPE-Bereich nachdeklariert zu werden sondern
- sondern sie lassen sich nun irgendwo im Block nachdeklarieren - so wie es Wirth & ISO
- verlangen.
-
- Summa summarum: Wir sind nun auch in punkto Code-Erzeugung stolz auf unseren Compiler.
- Und was das bei uns Perfektionisten heißt, können wir hier leider aus wettbewerbsrechtlichen
- Gründen nicht weiter ausführen.
-
- Die Shell
-
- Die Shell bietet nun noch mehr Komfort. Es ist möglich, beliebig viele Dateien zu selektieren,
- zu kopieren und zu löschen. Disketten können formatiert werden. Insgesamt wurde die
- Bedienung weitgehend den Fähigkeiten des Desktops angeglichen. Es können bis zu zehn
- Arbeitsdateien simultan installiert werden, zudem erkennt die Shell automatisch, wenn zu
- einem auszuführenden Quelltext ein aktueller, d.h. jüngerer Code existiert und führt diesen
- dann ohne ein erneutes Compilieren aus. Die gesamte Arbeitsumgebung, also die Position
- aller Icons und Fenster sowie alle Einstellungen in den Dialogboxen, kann abgespeichert
- werden. Damit ist nun eine bequeme Verwaltung verschiedener Projekte möglich, dies wird
- noch durch die Möglichkeit der Benutzung von beliebigen Batch-Dateien (in etwa die
- bisherigen SHELL.INF-Dateien) unterstützt. Das Konfigurieren und Bedienen der Umgebung ist
- einfacher und zugleich komfortabler geworden, dazu gehört auch die Möglichkeit, alle
- Funktionen der Shell wahlweise über die Tastatur oder mit der Maus bedienen zu können,
- außerdem das leichtere Einbinden beliebiger Editoren.
-
- Das Make
-
- Das Megamax Modula-2 System verfügt nun über ein Make-Utility. Dieses einfach zu
- bedienende Programm übernimmt die automatische Compilierung aller Dateien eines Projektes,
- dabei wird aufgrund der Modulabhängigkeiten und der Zeitstempel der einzelnen Quell~
- texte und schon vorhandenen Codedateien bestimmt, welche Quellen compiliert werden
- müssen. Nach Ermittlung der zu übersetzenden Module wird der Compiler dazu automatisch
- aufgerufen. So werden nur genau die Module neu übersetzt, bei denen das notwendig ist.
- Auch die Erstellung der Datei, die die Modulabhängigkeiten enthält (Make-Datei), kann
- bequem von einem mitgelieferten Programm durchgeführt werden; dieses erledigt seine Arbeit
- unter Auswertung der einzelnen Importlisten.
-
- Die Benutzung des Make kann in gewohnt bequemer Weise von der Shell, vom Editor oder
- gar aus den Batch-Dateien heraus geschehen.
- Die Editoren
-
- Da Editoren Geschmackssache sind, liefern wir gleich zwei davon. Der eine Editor arbeitet
- unter Verwendung des GEM und vereinigt mächtige Befehle mit einer einfachen Bedienung.
- Der zweite Editor, der Gepard-Editor, der bereits auf den MeMoX-Disketten zu erhalten
- war, arbeitet ohne GEM, belegt dafür aber wenig Speicher und ist sehr schnell, zudem
- bietet er nun eine trickreiche Hilfe-Funktion: Er kann automatisch nach exportierten
- Bezeichnern der vorhandenen Definitionsmodule suchen und die dazu gehörige Beschreibung
- anzeigen. Beide Editoren können mehrere Texte gleichzeitig bearbeiten und erlauben ein
- schnelles Übersetzen der Module, ohne den Text zu speichern und den Editor zu verlassen.
- Der Toolbox-Editor wird nicht mehr mitgeliefert, Sie können aber den alten weiterverwenden.
-
- Die Bibliothek
-
- Selbst unsere Bibliothek konnte noch verbessert werden und enthält nun über 220 Module.
- Viele der alten Module wurden erweitert und auch ausführlicher dokumentiert. Natürlich
- unterstützen wir die im TOS 1.4 und TT-TOS hinzugekommenen Routinen, und die Speicher~
- verwaltung ist nun unabhängig von der TOS-Version und dabei auch noch kompakter und
- schneller geworden, bietet aber weiterhin den gewohnten Megamax-Komfort. Das System
- wurde auch schon erfolgreich auf dem Atari TT eingesetzt.
-
- Es ist nun möglich, alle oder einzelne Definitionsmodule in einer Library-Datei zusam~
- menzufassen, aus der sie vom Compiler während des Compilierens gelesen werden, was einen
- deutlichen Geschwindigkeitsgewinn bringt. Um Speicherplatz auf der Disk zu sparen, ist es
- möglich, die Dateien zu komprimieren. Getreu unserem modularen Motto, alle System~
- funktionen auch dem Benutzer zugänglich zu machen, ist es selbstverständlich, daß sowohl
- die Prozeduren zum Komprimieren und Dekomprimieren einzelner Speicherbereiche als auch
- die Routinen zur Verwaltung von Library-Dateien in dem Benutzer zugänglichen Modulen
- stehen.
-
- Des weiteren wurde die Bibliothek um Module zur einfachen Verwaltung von Fenstern
- beliebigen Inhalts und Fenstern, die komplette Listen in Textform und gewohntem Komfort
- darstellen, erweitert. Es gibt neue Module, die die meistgebrauchten Routinen zur GEM-
- Programmierung und schnelle Prozeduren zum Löschen und Verschieben von Speicherbereichen
- enthalten. Der direkte Zugriff auf alle AES- und VDI-Daten ist nun möglich. So können Sie
- sowohl neue Funktion selbst aufrufen als auch beispielsweise mehrere Resource-Dateien laden
- und verwalten. Ein zu Terminal kompatibles Modul 'Console' benutzt die GEMDOS- statt
- der BIOS-Routinen, so daß Ein-/Ausgabeumleitungen, z.B. in sogenannten Command-Line-
- Shells, möglich sind. Eine neue, noch viel bequemere Fehlerbehandlung für die eigenen
- Programme ist hinzugekommen, die sogar Accessories absturzsicher machen kann.
-
- Die bisherigen Module sind überarbeitet und teilweise stark erweitert worden, wobei darauf
- Rücksicht genommen wurde, alte Programme möglichst ohne Änderungen, also durch einfaches
- Neuübersetzen, weiterverwenden zu können.
-
- Die Coprozessorunterstützung
-
- Optional kann nun der Fließkomma-Coprozessor (68881/2), wie er z.B. von Atari vertrieben
- (SFP 004) und auch von Fremdherstellern für die ST Computer angeboten wird, für
- REAL/LONGREAL-Operationen eingesetzt werden. Ebenso wird der im Atari TT serienmäßig
- vorhandene Coprozessor 68882 optimal ausgenutzt.
-
- Dazu gehört nicht nur die Verwendung des IEEE-Formates für Fließkommazahlen und das
- Benutzen des Coprozessors bei den einzelnen Bibliotheksfunktionen für die Fließkomma~
- arithmetik, sondern auch das geschickte Ausnutzen der Register des 68882 durch die neue
- Codeerzeugung des Compilers. Dadurch wird sogar ohne das manuelle Einsetzen von
- Register-Variablen schon eine Steigerung der Ausführungszeiten von rechenintensiven
- Programmen um bis zu 50% gegenüber den sonst üblichen Einbindungen des Coprozessors
- erzielt. Das liegt daran, daß der Megamax-Compiler für die Coprozessor-Unterstützung
- besonderen Code erzeugt, während andere Systeme, die keine spezielle Option hierfür
- vorsehen, erst zu spät in der Laufzeitbibliothek die Coprozessor-Erkennung durchführen. Durch
- Verwendung von Register-Variablen können Sie sogar weit an Assembler-Optimierungen
- herankommen.
-
- Das Drumherum
-
- Es sind jetzt 40 verschiedene Demo- und Hilfsprogramme vorhanden. Diese Programme
- werden im Quelltext mitgeliefert und führen Ihnen nun noch mehr der teilweise neuen, sehr
- vielfältigen Möglichkeiten des Entwicklungssystems vor Augen und geben Ihnen Beispiele für
- die eigene Programmierung.
- Eine neue Version des Resource-Construction-Programms führt bei mehr als sieben Laufwerken
- nicht mehr zu Fehlern.
-
- Das Handbuch
-
- Selbstverständlich sind alle neuen Module, die Editoren, das Make, die Verbesserungen in
- Shell, Compiler und Linker im neuen Handbuch dokumentiert. Aber auch die übrigen
- Informationen wurden überarbeitet und ausführlicher beschrieben. Im Kapitel über den
- Compiler sind die Erweiterungen nun deutlich markiert - unterschieden nach ISO- und eigenen
- Erweiterungen. Zur Optimierung Ihrer Systemumgebung und Ihrer Programme finden Sie
- genauso Hinweise wie zur Anpassung Ihrer alten Module auf das neue System. Damit Sie
- nicht nur Bahnhof verstehen, wenn wir von der Base Page sprechen oder Sie zum Booten
- auffordern, haben wir ein neues Kapitel mit Begriffserläuterungen angefügt. Auch Interna
- wie der Vorgang des Linkens und des Make sowie der Aufbau des Bezeichnerbaums in
- Definitionsmodulen und die Formate von Strukturen im Speicher sind keine Geheimnisse mehr.
-
- Zur besseren Übersichtlichkeit wurden Inhaltsübersicht und Index nochmals vergrößert, die
- Bedienungsanleitungen zu den Programmen mit Grafiken (Hardcopies) verdeutlicht. Alles
- zusammen hebt den Umfang des Handbuchs um 300 auf nun ca. 700 Seiten!
-
- Der Service
-
- Sollte das Handbuch immer noch Fragen offen lassen, so bieten wir Ihnen nun in schwierigen
- Fällen eine Hotline zu den Programmierern; zudem können Sie die Quelltexte der Bibliotheken
- erhalten.
-
- Wo ist der Haken?
-
- Alle diese Verbesserungen haben auch ihren Preis: Die Bibliothek, die Shell und der Compiler
- sind gewachsen und belegen damit mehr Speicher - trotz der besseren Codeerzeugung. Shell
- und Compiler benötigen nun ca. 170 KB mehr RAM. Das führt bei Rechnern mit (nur) einem
- Megabyte Speicher zu Problemen. Deswegen liefern wir eine zweite Shell mit, die mehr als
- 100 KB weniger Speicher benötigt: Bei ihr fehlen die Desktop-Symbole - Verzeichnisse
- können mit dieser Shell nicht mehr angesehen werden. Statt dessen werden die Funktionen
- zum Löschen, Umbenennen, Arbeitsdatei auswählen usw. in der Menüleiste und über den
- File-Selector zur Verfügung gestellt. Ein Programm, der "Filer", dient als Tool, mit dem Sie
- dann wie bei der großen Shell die Verzeichnisse in Fenstern sehen und bearbeiten können.
- Da andere Komponenten, besonders die Definitionsmodule, kompakter wurden, ist das
- bequeme Arbeiten mit einem Megabyte weiterhin möglich.
-
- Übrigens: Haben Sie schon die Testberichte zu Vorab-Versionen des neuen Megamax-Systems
- gelesen? Beide Berichte geben uns fast durchweg die besten Noten: ST-Magazin 4/90 und
- TOS 7/90. Die wenigen dort angebrachten Mängel wurden bereits behoben.
- Sie wollen mehr?
-
- Können Sie haben. Beispielsweise:
-
- * Die Quelltexte der MOS-Bibliothek (alle Implementationsmodule).
-
- * Die Magic-Library von Peter Hellinger. Das ist eine vereinfachte GEM- und TOS-
- Bibliothek, die für alle Modula-Compiler auf dem Atari ST verfügbar ist und die damit
- portabel in GEM programmieren können. Die Namensgebung der Bezeichner richtet sich
- i.a. nach den ausgeschriebenen Namen im Profibuch. Außerdem umfaßt sie einige
- High-Level-GEM-Module: Sie haben alle Features, die die C-Library zum Buch "Vom
- Anfänger zum GEM-Profi" (Hüthig Verlag 1990) der Geiß-Brüder (Adimens) bietet und
- den modernen GEM-Richtlinien entsprechen: Popup-Menüs, Menüzeilen im Fenster, Tasten~
- bedienung bei Buttons in Dialogen, "fliegende Dialoge" (nach den Flydials von Julian
- Reschke), VT52-Emulation im Fenster und vieles mehr.
-
- * Eine ADT-Bibliothek, die keine Wünsche mehr offen lassen kann: Bäume (auch AVL),
- Listen (mit Marken), Hash-Tabellen, Stacks und Queues. Die Daten werden nicht, wie
- beim Megamax-Modul Lists, über Zeiger verwaltet, sondern können komplett übergeben
- werden. Die Strukturen können in einem Stück kopiert (zugewiesen) oder in Dateien
- geschrieben/gelesen werden. Und so weiter. Die Quelltexte in Modula-2 werden
- mitgeliefert.
-
- * Die neue MeMoX-Disk Nr. 3. Sie enthält u.a. Module für beliebig große Integer-Zahlen
- (in Assembler optimiert), Joystickabfragen incl. "Tetrax", einer Nachahmung des bekannten
- Spiels "Tetris", eine Matrizenbibliothek, eine Funktion zum Erkennen von Tastenkürzeln in
- Menüleisten (so daß das Programm eine Änderung der Tastenkommandos in der RSC-Datei
- automatisch übernimmt), ein kleines Terminal-Programm incl. XModem-Routinen, ein Modul
- zur Mausbeschleunigung, ein alternatives "InOut", das die Ausgaben zusätzlich in einer
- Datei protokolliert, gepufferte Dateilesefunktionen und noch mehr. Die MeMoX 1 wurde
- übrigens aufgelöst und die nicht ins Modula-System übernommenen Module auf die dritte
- Disk übertragen, die dafür nun doppelseitig ist.
-
- * Oder fehlt Ihnen noch die MeMoX 2? Dann haben sie u.a. versäumt: Ein richtiges
- Real-Time Multitasking-Modul, das auf ganz normale Modula-Prozeduren ohne Assembler
- angewendet werden kann, einen Formel-Parser, eine Stoppuhr (Auflösung 5ms), AVL-
- Bäume und ein Modul, das in mehreren Textfenster gleichzeitig Eingaben zuläßt: Einfach
- das gewünschte Fenster anklicken und drauflosschreiben.
- Ihre Wünsche? Unsere Fragen!
-
- Bevor Sie den Bestellschein an uns zurücksenden, beantworten Sie bitte noch die folgenden
- Fragen. Wir wollen uns damit in Zukunft besser auf Ihre Bedürfnisse einstellen und so
- schneller zu interessanten Updates kommen.
-
- Auf den vorigen Seiten haben Sie erfahren, was Sie beim neuen System erwartet. Wir
- stellen Ihnen gleich die Frage, welche Punkte Sie verbessert sehen wollen. Bewerten Sie
- jede Frage mit einem Wert von 0 bis 2 und schreiben Sie die Zahl an den Anfang jeder
- Zeile.
-
- 0 bei keinem Interesse ("Nein, muß nicht sein"),
- 1 bei bedingtem Interesse ("wäre nicht übel"),
- 2 bei großen Interesse ("Ja, unbedingt").
-
- Also los! Wie wichtig ist es Ihnen...
- daß der Compiler bestmöglichen Code erzeugt (z.B. wie Turbo-C)?
- daß der Compiler optimalen Code für den 68030 im Atari TT erzeugt?
- daß der Compiler dem ISO-Standard vollständig entspricht?
- daß der Compiler objekt-orientierte Erweiterungen (OOP) bietet?
- daß der Compiler noch schneller übersetzt?
- daß der Compiler Fehler sammelt statt immer beim ersten Fehler zu stoppen?
- ein richtiger Runtime-Debugger (Variable ansehen, Breakpoints usw.)?
- eine ISO-Standard-Bibliothek?
- eine einfachere Übertragung von C-Programmen und -Beispielen?
- eine GEM-/TOS-Bibliothek mit den Original C-Bezeichnernamen?
- eine Einbindung von Funktionen aus Turbo-C-Objekt-Modulen/-Bibliotheken?
- ein integriertes System (Editor fest in Shell, Shell einfacher)?
- mehr komfortable GEM-Module (Resource-, Dialog- und Fensterverwaltung)?
- eine spezielle Grafikbibliothek (freie, einfache Grafiken in GEM-Fenstern)?
- eine größere mathematische Bibliothek?
- eine größere Modulsammlung für allgemeine Zwecke (abstrakte Datentypen usw.)?
- ein einfacher zu bedienendes System/Shell (z.B. für Schulungen, Gelegenheitsbenutzer)?
- eine bessere Dokumentation der Shell, um selbst Änderungen vornehmen zu können?
- ein GEM-Editor mit Wordstar-/Tempus-artiger Bedienung?
- ein GEM-Editor mit Mac-artiger Bedienung (Cut/Copy/Paste, z.B. Script, 1st Word)?
- daß der MeMoX für eine größere Modulauswahl intensiviert wird?
- daß das Handbuch übersichtlicherer wird?
-
- Wenn Sie weitere Wünsche oder Anmerkungen haben, verwenden Sie dafür bitte ein anderes
- Blatt, da dieser Zettel anonym und tabellarisch ausgewertet werden soll!
-
- Und zuletzt verraten Sie uns bitte noch Ihre Systemkonfiguration:
-
- Diskettenlaufwerke: einseitig(e) (Anzahl eintragen)
- doppelseitig(e)
-
- Festplatte (ankreuzen, wenn vorhanden)
-
- Festspeicher Mega Byte
- __
-
- Rechner ST (520, 1040, Mega)
- STE
- TT
-
- TOS-Version (1.0, 1.2, 1.4, 1.6 oder 3.0)
- __
-
- Monitor monochrom (SM 124, auch Atari TT)
- farbe (SC 1224, auch Atari TT)
- Großbildschirm/Grafikkarte
-